package cn.com.nes.site.entity.vo.product;

import cn.com.nes.site.entity.vo.PageVO;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Set;

/**
 * 查询产品分页VO
 *
 * @Author: ShenWei
 * @Date: 2024/03/28/9:29
 */
@Data
public class GGoodsVO extends PageVO {

    @ApiModelProperty("商品Id")
    private String uuid;


    @ApiModelProperty("商品内部编码")
    private String goodsCode;


    @ApiModelProperty("商品名称")
    private String goodsName;


    @ApiModelProperty("商品类别")
    private String goodsType;


    @ApiModelProperty("商品型号")
    private String goodsModel;


    @ApiModelProperty("设备厂家id")
    private String customerId;


    @ApiModelProperty("设备厂家名称")
    private String customerName;


    @ApiModelProperty("品牌id")
    private Long brandId;


    @ApiModelProperty("规格数量")
    private String packingSize;


    @ApiModelProperty("计量单位")
    private String unit;


    @ApiModelProperty("所属公司id")
    private String companyId;


    @ApiModelProperty("创建人id")
    private String createUid;


    @ApiModelProperty("创建时间")
    private Date createTime;


    @ApiModelProperty("修改人id")
    private String modifyUid;


    @ApiModelProperty("修改时间")
    private Date modifyTime;


    @ApiModelProperty("货品清单类型01配件02整机")
    private String tabPosition;


    @ApiModelProperty("删除标识")
    private String isdelete;


    @ApiModelProperty("库存过高预警")
    private Integer numberHight = 0;


    @ApiModelProperty("库存过低预警")
    private Integer numberLow = 0;


    @ApiModelProperty("设备类型")
    private String sblx;


    @ApiModelProperty("设备名称")
    private String sbmc;


    @ApiModelProperty("设备型号")
    private String sbxh;


    @ApiModelProperty("设备类型id，dict_value表")
    private String equipmentTypeId;


    @ApiModelProperty("设备类型名称，dict_value表")
    private String equipmentTypeName;


    @ApiModelProperty("设备简称")
    private String equipmentShortName;


    @ApiModelProperty("能源类型id")
    private Long energyType;


    @ApiModelProperty("单价")
    private BigDecimal price;


    @ApiModelProperty("是否启用 true-启用 false-没启用")
    private Boolean enable;


    @ApiModelProperty("logo图标")
    private String logo;

    @ApiModelProperty("检测报告路径")
    private String inspectionReportPath;

    @ApiModelProperty("检测报告名称")
    private String inspectionReportFileName;


    @ApiModelProperty("执行标准编号,多个用 , 隔开")
    private String executiveStandard;


    @ApiModelProperty("备注")
    private String remark;

    @ApiModelProperty(value = "能源分类id列表", hidden = false)
    private Set<Long> productEnergyIdList;

    @ApiModelProperty(value = "品牌系列id列表", hidden = false)
    private Set<Long> productBrandIdList;

    @ApiModelProperty(value = "能源类型字典值列表", hidden = false)
    private Set<String> energyTypeList;

    // 扩展参数
    private List<FieldsParam> fieldsParamList;
    private List<Long> brandChildIds;
    private List<Long> energyTypeChildIds;

    @Data
    public static class FieldsParam {
        /**
         * 字段名称
         */
        @NotNull(message = "字段名称不能为空!")
        private String sblxField = "";

        /**
         * 字段值
         */
        private String value = "";
    }
}
